$(function () {
  var oldTime;

  //加载游客信息
  var tourist;
  $.ajax({
     url: '/tourist/get_info',
     type: 'GET',
     dataType: 'json',
     async: false
  }).done(function (res) {
     tourist = res;
  });

  //加载layim信息
  layui.use('layim', function (layim) {
    layim.config({
       //设置为简约模式,不展示主面板
       brief: true
       //控制聊天面版最小化时、及最新消息提示层的相对right的px坐标
       , minRight: '0px'
       //消息历史记录
       , chatLog: layui.cache.dir + 'css/modules/layim/html/chatlog.html'
       , init: {
          mine: tourist
       }
    });
    // 建立websocket连接，之所以会用ReconnectingWebSocket是因为
    // 使用a ReconnectingWebSocket，在一个onclose事件被调用后，
    // 它会自动尝试重新连接。另外，连接会重复尝试（只需一个小暂停），直到成功为止
    // var socket = new WebSocket("ws://localhost:8080/web_socket?sessionId=" + sessionId);
    var socket = new ReconnectingWebSocket("ws://localhost:8080/web_socket?sessionId=" + sessionId);

    socket.onopen = function () {
      console.log("连接成功");
    };
    socket.onclose = function () {
      console.log("关闭成功");
    };
    socket.onerror = function () {
      console.log("连接出错");
    };

    //发送成功
    layim.on('sendMessage', function (res) {
      //包含我发送的消息及我的信息
      var mine = res.mine;
      console.log('mine:' + JSON.stringify(mine));
      //对方的信息
      var to = res.to;
      console.log('to:' + JSON.stringify(to));
      //消息体
      var obj = {
        content: mine.content,//发送的消息内容
        to: 0,//发送给客服
        from: sessionId,
        username: mine.username,
        avatar: mine.avatar
      }
      socket.send(JSON.stringify(obj));
      oldTime = new Date().getTime();
    });
    //收到消息
    socket.onmessage = function (res) {
      res = JSON.parse(res.data);
      //res为收到的值
      console.log(res);
      layim.getMessage(res);
      oldTime = new Date().getTime();
    }

    //咨询客服
    $('.find-service').on('click', function () {
      $.ajax({
         url: '/customer_service/get_info',
         type: 'GET',
         dataType: 'json',
         async: false
      }).done(function (res) {
        //推送一条消息
        var obj = {
          username: res.username,
          avatar: res.avatar,
          id: "2",
          fromid: "0",
          type: 'friend',
          content: '您好，由于当前人流量较多，不能及时回复您。这边可以留下联系方式，和想要咨询的问题，盟盟看到后会立刻给您回复哦face[心]'
        };
        //判断如果距离上次发消息在半个小时内就不再发送
        if ((oldTime && new Date().getTime() - oldTime > 3600000 || !oldTime)) {
          oldTime = new Date().getTime();
          layim.getMessage(obj);
        }
      });

    });
  });
});